package com.tzbank.common.controller;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.tzbank.common.service.FrequentContactsService;
import com.tzbank.entity.FrequentContacts;
import com.tzbank.utils.CodeUtil;
import com.tzbank.utils.ResultUtil;

import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@Api(value = "常用联系人")
@RestController
public class FrequentContactsController {

	@Autowired
	private FrequentContactsService frequentContactsService;

	/**
	 * 添加常用联系人
	 * @param contacts
	 * @return
	 * @author XUZONGTIAN 2018年6月12日
	 */
	@PostMapping(value = "addContacts")
	public Map<String, Object> addContacts(@RequestBody FrequentContacts contacts) {
		try {
			return this.frequentContactsService.addContacts(contacts);
		} catch (Exception e) {
			log.error("addContacts error: ", e);
			return ResultUtil.resultMap(CodeUtil.CODE_500.getName(), CodeUtil.CODE_500.getCode(), null);
		}
	}

	/**
	 * 修改常用联系人
	 * @param contacts
	 * @return
	 * @author XUZONGTIAN 2018年6月12日
	 */
	@PostMapping(value = "modifyContacts")
	public Map<String, Object> modifyContacts(@RequestBody FrequentContacts contacts){
		try {
			return this.frequentContactsService.modifyContacts(contacts);
		} catch (Exception e) {
			log.error("modifyContacts error: ", e);
			return ResultUtil.resultMap(CodeUtil.CODE_500.getName(), CodeUtil.CODE_500.getCode(), null);
		}
	}
	
	/**
	 * 删除常用联系人
	 * @param contacts
	 * @return
	 * @author XUZONGTIAN 2018年6月12日
	 */
	@PostMapping(value = "deleteContacts")
	public Map<String, Object> deleteContacts(@RequestBody FrequentContacts contacts){
		try {
			return this.frequentContactsService.deleteContacts(contacts);
		} catch (Exception e) {
			log.error("deleteContacts error: ", e);
			return ResultUtil.resultMap(CodeUtil.CODE_500.getName(), CodeUtil.CODE_500.getCode(), null);
		}
	}
	
	/**
	 * 按照用户ID查询所有联系人
	 * @param contacts
	 * @return
	 * @author XUZONGTIAN 2018年6月12日
	 */
	@PostMapping(value = "queryContactsByUserId")
	public Map<String, Object> queryContactsByUserId(@RequestBody FrequentContacts contacts) {
		try {
			return this.frequentContactsService.queryContactsByUserId(contacts.getUserId());
		} catch (Exception e) {
			log.error("deleteContacts error: ", e);
			return ResultUtil.resultMap(CodeUtil.CODE_500.getName(), CodeUtil.CODE_500.getCode(), null);
		}
	}
	
	/**
	 * 按照用户ID和姓名查询联系人
	 * @param contacts
	 * @return
	 * @author XUZONGTIAN 2018年6月12日
	 */
	@PostMapping(value = "queryContactsByUserIdAndName")
	public Map<String, Object> queryContactsByUserIdAndName(@RequestBody FrequentContacts contacts) {
		try {
			return this.frequentContactsService.queryContactsByUserIdAndName(contacts.getUserId(), contacts.getName());
		} catch (Exception e) {
			log.error("deleteContacts queryContactsByUserIdAndName: ", e);
			return ResultUtil.resultMap(CodeUtil.CODE_500.getName(), CodeUtil.CODE_500.getCode(), null);
		}
	}
	
}
